package be.xios.projectquiz.game;

import javax.swing.JLabel;
import javax.swing.JTextField;

/// <summary>
/// Deze klasse is een runnable die ervoor zorgt dat er afgeteld kan worden 
/// De tijd wordt bepaald door de jury 
/// </summary>
/// <author>Sebastian Kubski</author>
public class TimerThread implements Runnable {

	private JLabel timeLbl;
	private SharedAntwoord sharedAntwoord;
	private JTextField solutionTF;
	private Player player;
	private GamePlayerGUI playerGUI;
	private boolean kont;
	
	public TimerThread(JLabel timeLbl, JTextField solutionTF, Player player, SharedAntwoord sharedAntwoord, GamePlayerGUI playerGUI) {
		this.timeLbl=timeLbl;
		this.sharedAntwoord=sharedAntwoord;
		this.solutionTF=solutionTF;
		this.player=player;
		this.playerGUI=playerGUI;
		
		kont = true;
	}

	@Override
	public void run() {
		int time = Integer.parseInt(timeLbl.getText());
		
		while(kont) {
			try {
				Thread.sleep(1000);
			} 
			catch (InterruptedException e) {
				e.printStackTrace();
			}
			
			time--;
		
			timeLbl.setText(""+time);
			
			if ( time == 0) {
				Antwoord antwoord = new Antwoord("Speler heeft niet binnen de tijd beantwoord", player.getNaam());
				sharedAntwoord.setAntwoord(antwoord);
				
				solutionTF.setText("");		
				stop();
				playerGUI.getPnlSouth().setVisible(false);
				playerGUI.getGamePanel().setWachtenOpVerbetering(true);
				playerGUI.getGamePanel().repaint();				
			}
		}		
		
	}

	
	public void setKont(boolean huge) {
		this.kont=huge;
	}
	
	/// <summary>
	/// Deze method zorgt ervoor dat wanneer er effectief beantwoord IS de timer gestopt kan worden
	/// </summary>
	/// <author>Sebastian Kubski</author>
	public void stop() {
		setKont(false);
	}
	
	
}
